package com.llseven.ai.spring.llseven.util;

import java.util.Random;
import java.util.UUID;

/**
 * @author ywb
 * @date 2025-04-18 13:53
 */
public class FileUtil {
    /**
     * 从文件名中获取文件后缀（扩展名）。
     *
     * @param originalFilename 原始文件名
     * @return 文件后缀，如果没有找到则返回默认后缀
     */
    public static String getFileSuffix(String originalFilename) {
        if (originalFilename == null || !originalFilename.contains(".")) {
            return ".png"; // 默认后缀
        }
        return originalFilename.substring(originalFilename.lastIndexOf("."));
    }
    
    /**
     * 使用 UUID 生成一个唯一的文件名，同时保留原始文件的扩展名。
     *
     * @param originalFilename 原始文件名
     * @return 生成的唯一文件名（包括扩展名）
     */
    public static String generateFileName(String originalFilename) {
        String fileSuffix = getFileSuffix(originalFilename); // 获取文件扩展名
        String uniqueName = UUID.randomUUID().toString().replace("-", ""); // 生成唯一名称并去掉中间的“-”
        return uniqueName + fileSuffix; // 将唯一名称和原始文件扩展名组合
    }
    
    public static String generateFileName() {
        String uuid = UUID.randomUUID().toString();
        String randomNum = Integer.toString(new Random().nextInt(10000));
        String hash = Integer.toString(uuid.hashCode() & Integer.MAX_VALUE);
        return hash + randomNum;
    }
}
